<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<!--
			1、函数
				概述：
					函数是实现了特定功能的一个代码段。通过函数名可以对代码进行重复调用。
				定义语法1：
					function 函数名([参数列表]){
						[函数体;]
					}
				定义语法2(变量 + 匿名函数)：
					var 标识符 = function([参数列表]){
						[函数体;]
					}
				
				注意：
					1）、函数需要通过调用才能被执行
					2）、调用和函数的定义没有先后顺序的要求
					3）、函数调用时可以不按参数列表的个数进行参数传递
					4）、函数内部都提供了一个名为arguments的集合对象，通过该对象可以获取接收到的所有参数
					5）、Js中不支持函数重载，后面的函数会覆盖前面的同名函数
		-->
		<script type="text/javascript">
			//1)、无参、无返回值函数
			function fun1(){
				alert("fun1() is do......")
			}
			
			//fun1();
			
			//2)、带参、无返回值的函数
			function fun2(i,s) {
				console.log("i=" + i);
				console.log("s=" + s);
			}
			
			fun2(20,'Hello');
			fun2(20,'Hello','Hehe');
			
			//3)、带参数、带返回值的函数
			function fun3(i,j){
				return i+j;
			}
			
			console.log(fun3(3,7));
			
			//4)、字面量方式定义函数
			var fun4 = function(){
				console.log("字面量方式定义函数");
			}
			
			fun4();
			
			//5)、内部对象
			function fun6(){
				//arguments：内置集合对象
				//通过arguments对象可以获取到函数接收到的所有参数
				for(i = 0;i<arguments.length;i++){
					console.log(arguments[i]);
				}
			}
			
			fun6("Tom",20,true,33.98,'Lily');
			
			//6)、this:调用当前函数的对象
			function fun7(){
				this.fun1();
				console.log(this);
			}
			
			fun7();
			
			//7)函数重载
			function fun8(){
				console.log("fun8(无参) is do.......");
			}
			
			function fun8(i){
				console.log("fun8(带参) is do.......");
			}
			
			//fun8();
			fun8(20);
		</script>
	</head>
	<body>
	</body>
</html>
